#include "key.h"
#include "motor.h"
#include "pump.h"

static void KeyF1_IsBeingPressed(char *arg)
{
    (void)arg;
	Motor_On();
}

static void KeyF2_IsBeingPressed(char *arg)
{
    (void)arg;
	Pump_On();
}

void Key_Init(void)
{
    GpioInit();

    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_IO_FUNC_GPIO_11_GPIO);
    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_GPIO_DIR_IN);
    IoSetPull(WIFI_IOT_IO_NAME_GPIO_11, WIFI_IOT_IO_PULL_UP);

    GpioRegisterIsrFunc(
        WIFI_IOT_IO_NAME_GPIO_11, 
        WIFI_IOT_INT_TYPE_LEVEL, 
        WIFI_IOT_GPIO_EDGE_FALL_LEVEL_LOW, 
        KeyF1_IsBeingPressed,
        NULL
    );

    IoSetFunc(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_IO_FUNC_GPIO_12_GPIO);
    GpioSetDir(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_GPIO_DIR_IN);
    IoSetPull(WIFI_IOT_IO_NAME_GPIO_12, WIFI_IOT_IO_PULL_UP);

    GpioRegisterIsrFunc(
        WIFI_IOT_IO_NAME_GPIO_12, 
        WIFI_IOT_INT_TYPE_LEVEL, 
        WIFI_IOT_GPIO_EDGE_FALL_LEVEL_LOW, 
        KeyF2_IsBeingPressed,
        NULL
    );
}
